package com.mibus.mibusmobile;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class MySQLiteHelperRecorrido extends SQLiteOpenHelper {

    // Database Version
    private static final int DATABASE_VERSION = 1;
    // Database Name
    private static final String DATABASE_NAME       = "RecorridoDB";
    private static final String KEY_ID              = "_id";
    private static final String TABLE_RECORRIDO     = "recorrido";
    private static final String KEY_RECORRIDO       = "id_recorrido_realizado";
    private static final String KEY_FECHA           = "fecha_creacion";
    private static final String[] COLUMNS = {
            KEY_ID,
            KEY_RECORRIDO,
            KEY_FECHA,
    };


    public MySQLiteHelperRecorrido(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db){
        db.execSQL( "CREATE TABLE recorrido(" +
                        " _id INTEGER PRIMARY KEY," +
                        " id_recorrido_realizado TEXT, " +
                        " fecha_creacion TEXT)"
        );
    }

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }

    public void agregarRecorrido(String id_recorrido_realizado, String fecha){
        Log.i(this.getClass().toString(), "agregando informaicon");

        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues valores = new ContentValues();

        valores.put(KEY_ID, 1 );
        valores.put(KEY_RECORRIDO, id_recorrido_realizado);
        valores.put(KEY_FECHA, fecha);


        db.insert("recorrido", null, valores);
        db.close();
        Log.i(this.getClass().toString(), "Informacion Agregada");
    }

    public ContentValues obtenerRecorrido(int id){
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor =
                db.query(TABLE_RECORRIDO, // a. table
                        COLUMNS, // b. column names
                        KEY_ID+" = ?", // c. selections
                        new String[] { String.valueOf(id) }, // d. selections args
                        null, // e. group by
                        null, // f. having
                        null, // g. order by
                        null); // h. limit

        ContentValues resultado =  new ContentValues();
        try{
            cursor.moveToFirst();
            for (int i=0;i<COLUMNS.length;i++){
                resultado.put(COLUMNS[i],cursor.getString(i));
            }
            Log.i(this.getClass().toString(), "Informacion obtenida");
        }catch (Exception e){
            resultado.put("_id","no hay nada");
        }
        return resultado;
    }

    public int actualizarRecorrido(String id_recorrido_realizado, String fecha, int id) {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues valores = new ContentValues();

        valores.put(KEY_ID, 1 );
        valores.put(KEY_RECORRIDO, id_recorrido_realizado);
        valores.put(KEY_FECHA, fecha);

        int i = db.update(TABLE_RECORRIDO, valores, KEY_ID+" = ?", new String[] { String.valueOf(id) });

        db.close();
        Log.i(this.getClass().toString(), "Informacion actualizada");
        return i;
    }

    public void eliminarRecorrido(int id) {
        SQLiteDatabase db = this.getWritableDatabase();

        db.delete(TABLE_RECORRIDO, KEY_ID+" = ?", new String[] { String.valueOf(id) });
        db.close();
        Log.i(this.getClass().toString(), "Informacion eliminada");
    }


}